home *** CD-ROM | disk | FTP | other *** search
/ The Music Factory Presents - Wolf Hollow / The Music Factory Presents - Wolf Hollow.iso / sst.mst < prev    next >
Encoding:
Text File  |  1994-08-19  |  10.5 KB  |  332 lines

  1. ''**************************************************************************
  2. ''*                       SST Setup Script...
  3. ''**************************************************************************
  4.  
  5. ''*** DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8.  
  9. '$INCLUDE 'msdetect.inc'
  10.  
  11. DECLARE FUNCTION InstallCarousel LIB "MSCUISTF.dll" ( DestDir$ ) AS INTEGER 
  12.  
  13. ''Dialog ID's
  14. CONST WELCOME       = 100
  15. CONST ASKQUIT       = 200
  16. CONST DESTPATH      = 300
  17. CONST EXITFAILURE   = 400
  18. CONST EXITQUIT      = 600
  19. CONST EXITSUCCESS   = 700
  20. CONST EXITRUNTIME   = 750
  21. CONST OPTIONS       = 800
  22. CONST APPHELP       = 900
  23. CONST BADPATH       = 6400
  24. CONST SpaceNeeded& = 1500000
  25.  
  26. ''Bitmap ID
  27. CONST LOGO = 1
  28.  
  29. GLOBAL DEST$        ''Default destination directory.
  30. GLOBAL OPTCUR$      ''Option selection from option dialog.
  31. GLOBAL FreeSpace&
  32. GLOBAL WinDir$          '' Stores Windows Directory
  33. GLOBAL SrcDir$          '' Source Directory path
  34.  
  35. GLOBAL szInf$
  36.  
  37. DECLARE SUB Install
  38. DECLARE SUB UpdateINIfiles
  39. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  40. DECLARE FUNCTION CheckForVFW () AS INTEGER
  41.  
  42.  
  43. INIT:
  44.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  45.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  46.  
  47.     SetBitmap CUIDLL$, LOGO
  48.     SetTitle "Wolf Hollow CD ROM Setup"
  49.     Temp$ = "Version 1.1" + CHR$(13) + "Copyright (C) 1994, AskMe Multimedia, Inc."
  50.     SetAbout "SST Super Show & Tell", TEMP$
  51.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  52.     IF szInf$ = "" THEN
  53.     szInf$ = GetSymbolValue("STF_CWDDIR") + "SSTINF.INF"
  54.     END IF
  55.     ReadInfFile szInf$
  56.  
  57.     OPTCUR$ = "1"
  58.     DEST$ = "C:\WolfH"
  59. '$IFDEF DEBUG
  60.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  61.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  62.     IF IsDriveValid(WinDrive$) = 0 THEN
  63.     i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  64.     GOTO QUIT
  65.     END IF
  66. '$ENDIF ''DEBUG
  67.  
  68.  
  69. WELCOME:
  70.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  71.     IF sz$ = "CONTINUE" THEN
  72.     UIPop 1
  73.     ELSE
  74.     GOSUB ASKQUIT
  75.     GOTO WELCOME
  76.     END IF
  77.  
  78. ISWINDOWS31:
  79. ' Check Windows Version... Must be 3.1 or greater...
  80.     MajorVer% = GetWindowsMajorVersion()
  81.     MinorVer% = GetWindowsMinorVersion()
  82.  
  83.     IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  84.     i% = DoMsgBox("SST First Edition requires Microsoft Windows version 3.10 or greater.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  85.     END
  86.     END IF
  87.  
  88. GETPATH:
  89.     SetSymbolValue "EditTextIn", DEST$
  90.     SetSymbolValue "EditFocus", "END"
  91. GETPATHL1:
  92.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  93.     DEST$ = GetSymbolValue("EditTextOut")
  94.  
  95.     IF sz$ = "CONTINUE" THEN
  96.     IF IsDirWritable(DEST$) = 0 THEN
  97.         GOSUB BADPATH
  98.         GOTO GETPATHL1
  99.     END IF
  100.     DESTDRIVE$ = MID$(DEST$, 1, 1)
  101.     FreeSpace& = GetFreeSpaceForDrive(DEST$) 
  102.     IF FreeSpace& < SpaceNeeded& THEN
  103.         GOSUB MORESPACE
  104.         GOTO GETPATHL1
  105.     ENDIF
  106.     UIPop 1
  107.     ELSEIF sz$ = "REACTIVATE" THEN
  108.     GOTO GETPATHL1
  109.     ELSEIF sz$ = "BACK" THEN
  110.     UIPop 1
  111.     GOTO WELCOME
  112.     ELSE
  113.     GOSUB ASKQUIT
  114.     GOTO GETPATH
  115.     END IF
  116.  
  117.     WinDir$ = GetWindowsDir()
  118.     Install
  119.  
  120.     CursorState% = ShowWaitCursor()
  121.     UpdateINIfiles
  122.  
  123. '    IF (CheckForVFW > 0 ) THEN
  124. '    ' Need to Install VFW 1.1
  125. '    IF CheckForVFW = 1 THEN
  126. '          ' Old Version found
  127. '          Temp$ = "An old runtime version of Video for Windows was found "
  128. '          Temp$ = Temp$ + "on your machine.  "
  129. '          Temp$ = Temp$ + CHR$(13) +CHR$(13)+ "Please run the SETUP program "
  130. '          Temp$ = Temp$ + "located in the \SST\VFW1-1 directory on this CD ROM "
  131. '          Temp$ = Temp$ + "to install the runtime for Video for Windows 1.1."
  132. '              Temp$ = Temp$ + CHR$(13) + CHR$(13) + "This will allow SST to properly play Video for Windows Movies."
  133. '    ELSE
  134. '          ' No Version Found
  135. '          Temp$ = "Video for Windows 1.1 has not been located on your machine.  "
  136. '          Temp$ = Temp$ + CHR$(13) +CHR$(13)+ "Please run the SETUP program "
  137. '          Temp$ = Temp$ + "located in the \SST\VFW1-1 directory on this CD ROM "
  138. '          Temp$ = Temp$ + "to install the runtime for Video for Windows 1.1."
  139. '              Temp$ = Temp$ + CHR$(13) + CHR$(13) + "This will allow SST to play Video for Windows Movies."
  140. '
  141. '    END IF
  142. '
  143. '
  144. '    i% = DoMsgBox(Temp$, "Attention Installer!", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  145. '    END IF
  146.     RestoreCUrsor CursorState%
  147.  
  148. '  Dave, tell'em about video for Windows Runtime here...
  149.     Temp$ = "If you expirence difficulty with the video portion of Wolf Hollow, "
  150.     Temp$ = Temp$ + "please run the SETUP program located in the \VFW1-1 directory "
  151.     Temp$ = Temp$ +"on this CD ROM."
  152.     i% = DoMsgBox(Temp$, "Attention Installer!", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  153.     CloseLogFile
  154.  
  155. QUIT:
  156.     ON ERROR GOTO ERRQUIT
  157.  
  158.     IF ERR = 0 THEN
  159.     dlg% = EXITRUNTIME
  160.     ELSEIF ERR = STFQUIT THEN
  161.     dlg% = EXITQUIT
  162.     ELSE
  163.     dlg% = EXITFAILURE
  164.     END IF
  165. QUITL1:
  166.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  167.     IF sz$ = "REACTIVATE" THEN
  168.     GOTO QUITL1
  169.     END IF
  170.     UIPop 1
  171.  
  172.     END
  173.  
  174. ERRQUIT:
  175.     i% = DoMsgBox("Setup sources were corrupted, call (612) 531-0603!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  176.     END
  177.  
  178.  
  179.  
  180. BADPATH:
  181.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  182.     IF sz$ = "REACTIVATE" THEN
  183.     GOTO BADPATH
  184.     END IF
  185.     UIPop 1
  186.     RETURN
  187.  
  188.  
  189. MORESPACE:
  190.     Temp$ = "The Wolf Hollow CD needs " + STR$(SpaceNeeded&) + " bytes to install." + CHR$(13)
  191.     Temp$ = Temp$ + "There is only " + STR$(FreeSpace&) +" bytes free."
  192.     i% = DoMsgBox( Temp$, "Not Enough Disk Space", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  193.     RETURN
  194.  
  195.  
  196. ASKQUIT:
  197.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  198.  
  199.     IF sz$ = "EXIT" THEN
  200.     UIPopAll
  201.     ERROR STFQUIT
  202.     ELSEIF sz$ = "REACTIVATE" THEN
  203.     GOTO ASKQUIT
  204.     ELSE
  205.     UIPop 1
  206.     END IF
  207.     RETURN
  208.  
  209.  
  210.  
  211. '**
  212. '** Purpose:
  213. '**     Builds the copy list and performs all installation operations.
  214. '** Arguments:
  215. '**     none.
  216. '** Returns:
  217. '**     none.
  218. '*************************************************************************
  219. SUB Install STATIC
  220.  
  221.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  222.  
  223.     CreateDir DEST$, cmoNone
  224.     OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  225.     WriteToLogFile "current working dir is "+szInf$
  226.     WriteToLogFile "Source Dir is " + SrcDir$
  227.  
  228.     AddSectionFilesToCopyList "Files", SrcDir$ + "SST\", DEST$
  229.     AddSectionFilesToCopyList "Icons", SrcDir$, DEST$
  230.     AutoDesk$ = GetIniKeyString( "WIN.INI", "AAPLAY Animation", "FullScreen" )
  231.     IF AutoDesk$ = "" THEN
  232.     AddSectionFilesToCopyList "AAPLAY", SrcDir$ + "SST\", WinDir$ + "SYSTEM"
  233.     WriteToLogFile "AAPLAY Animation not found in WIN.INI, copying AAPLAY.DLL"
  234.     ELSE
  235.     WriteToLogFile "Found AAPLAY Animation in WIN.INI - Checking for AAVGA.DLL and AAPLAY.DLL"
  236.     AAVGA$ = FindFileInTree("AAVGA.DLL", WinDir$)
  237.     WriteToLogFile "Search result for AAVGA.dll is |" + AAVGA$ + "|"
  238.     AAPLAY$ = FindFileInTree("AAPLAY.DLL", WinDir$)
  239.     WriteToLogFile "Search result for AAPLAY.dll is |" + AAPLAY$ + "|"
  240.     IF AAPLAY$ = "" THEN
  241.         ' Remove Section from INI file when AAPLAY.DLL not found.
  242.         i% = FRemoveIniSection ( "WIN.INI", "AAPLAY Animation", cmoForce)
  243.  
  244.         AddSectionFilesToCopyList "AAPLAY", SrcDir$ + "SST\", WinDir$ + "SYSTEM"
  245.         WriteToLogFile "Will copy AAPLAY.DLL"
  246.     ELSE
  247.         WriteToLogFile "Will not copy AAPLAY.DLL, found another version."
  248.     ENDIF
  249.     ENDIF
  250.  
  251.     CopyFilesInCopyList
  252.  
  253. END SUB
  254.  
  255. SUB UpdateINIfiles STATIC
  256. '' Update SST's INI file with installed paths.
  257.     INIFile$ = DEST$ + "\SST.INI"
  258.     CreateIniKeyValue INIFile$, "SST", "picturedir", SrcDir$ + "Content\Photos", cmoOverwrite
  259.     CreateIniKeyValue INIFile$, "SST", "picturetype", "1", cmoOverwrite
  260.     CreateIniKeyValue INIFile$, "SST", "sounddir", SrcDir$ + "Content\Sounds", cmoOverwrite
  261.     CreateIniKeyValue INIFile$, "SST", "soundtype", "1", cmoOverwrite
  262.     CreateIniKeyValue INIFile$, "SST", "carouseldir", SrcDir$ + "Samples", cmoOverwrite
  263.     CreateIniKeyValue INIFile$, "SST", "userselectdir", DEST$, cmoOverwrite
  264.     CreateIniKeyValue INIFile$, "SST", "altered", "0", cmoOverwrite
  265.     CreateIniKeyValue INIFile$, "SST", "moviedir", SrcDir$ + "Content\Movies", cmoOverwrite
  266.     CreateIniKeyValue INIFile$, "SST", "movietype", "2", cmoOverwrite
  267.  
  268.  
  269.     CreateProgmanGroup "Wolf Hollow CD ROM", "", cmoNone
  270.     ShowProgmanGroup "Wolf Hollow CD ROM", 1, cmoNone
  271.  
  272. ' Icons in group are below.
  273.     NoIcon$ = ", , 1, 1," + DEST$
  274.     Icon16Bit$ = DEST$ + "\I16Bit.ico, , 1, 1," + DEST$
  275.     Icon8Bit$ = DEST$ + "\I8Bit.ico, , 1, 1," + DEST$
  276.  
  277.     CreateProgmanItem "Wolf Hollow CD ROM", "Read Me 1ST", "Write.exe " + Dest$+"\ReadMe.wri", NoIcon$, cmoOverwrite    
  278.     Path$ = DEST$ + "\SST.exe " + SrcDir$ + "WolfHol\WolfH16.Car"
  279.     CreateProgmanItem "Wolf Hollow CD ROM", "Wolf Hollow 16bit", Path$, Icon16Bit$, cmoOverwrite
  280.     Path$ = DEST$ + "\SST.exe " + SrcDir$ + "WolfHol\WolfH8.Car"
  281.     CreateProgmanItem "Wolf Hollow CD ROM", "Wolf Hollow 8bit", Path$, Icon8Bit$, cmoOverwrite
  282.  
  283. '    Path$ = "Write.exe "+ SrcDir$ + "Order\Order.Wri"
  284. '    CreateProgmanItem "Ask Me Multimedia", "Order", Path$, NoIcon$, cmoOverwrite
  285.  
  286. ''    CloseLogFile
  287. END SUB
  288.  
  289.  
  290. '**
  291. '** Purpose:
  292. '**     Appends a file name to the end of a directory path,
  293. '**     inserting a backslash character as needed.
  294. '** Arguments:
  295. '**     szDir$  - full directory path (with optional ending "\")
  296. '**     szFile$ - filename to append to directory
  297. '** Returns:
  298. '**     Resulting fully qualified path name.
  299. '*************************************************************************
  300. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  301.     IF szDir$ = "" THEN
  302.     MakePath = szFile$
  303.     ELSEIF szFile$ = "" THEN
  304.     MakePath = szDir$
  305.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  306.     MakePath = szDir$ + szFile$
  307.     ELSE
  308.     MakePath = szDir$ + "\" + szFile$
  309.     END IF
  310. END FUNCTION
  311.  
  312.  
  313. FUNCTION CheckForVFW STATIC AS INTEGER
  314.     CheckForVFW = 0
  315.     AVIVideo$ = GetIniKeyString( "SYSTEM.INI", "MCI", "AVIVideo" )
  316.     WriteToLogFile "AVIVideo$ is " + AVIVideo$
  317.     IF AVIVideo$ <> "" THEN
  318.         Version$ = GetVersionOfFile(AVIVideo$)
  319.         WriteToLogFile "AVIVideo Version is " + Version$
  320.         NthField& = GetVersionNthField(Version$, 1)
  321.         IF NthField& <= 1 THEN
  322.             NthField& = GetVersionNthField(Version$, 2)
  323.             IF NthField& < 10 THEN
  324.                 CheckForVFW = 1         ' Found Old Version
  325.             END IF
  326.         END IF
  327.     ELSE
  328.         CheckForVFW = 2         ' Did not find VFW Runtime
  329.     END IF
  330. END FUNCTION
  331.  
  332.